package com.example.himalaya.interfaces;

import com.ximalaya.ting.android.opensdk.model.track.Track;
import com.ximalaya.ting.android.opensdk.player.service.XmPlayListControl;

import java.util.List;

public interface IPlayerViewCallback {

    /**
     * 开始播放
     */
    void onPlayStart();

    /**
     * 播放暂停
     */
    void onPlayPause();

    /**
     * 播放停止
     */
    void onPlayStop();

    /**
     * 播放错误
     */
    void onPlayError();

    /**
     * 上一首播放
     * @param track
     */
    void onPrePlay(Track track);

    /**
     * 下一首播放
     * @param track
     */
    void onNextPlay(Track track);

    /**
     * 加载播放列表UI,加载需要曲目列表的UI
     * @param tracks 播放列表数据
     */
    void onTrackListUI(List<Track> tracks);

    /**
     * 播放模式改变
     * @param currentMode 当前模式
     */
    void onPlayModeChange(XmPlayListControl.PlayMode currentMode);

    /**
     * 进度条改变
     * @param currentProgress 当前进度
     * @param totalDuration 总时长
     */
    void onProgressChange(int currentProgress,int totalDuration);

    /**
     * 广告正在加载
     */
    void onAdLoading();

    /**
     * 广告结束
     */
    void onAdFinished();

    /**
     * 更新曲目UI，包括标题和图片和播放列表UI
     * @param track 曲目
     * @param index 位于播放列表中的位置
     */
    void onTrackUpdateUI(Track track,int index);

    /**
     * 更新播放列表排序
     * @param isReverse 是否翻转
     */
    void onUpdatePlayListOrder(boolean isReverse);


}
